/*
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 *
 * Copyright @2008 the original author or authors.
 */
package com.bluestone.report;

import java.util.HashMap;


/**
 * A IExpAttributeHandler represents the oboject which can add the expand attribute to it.
 * The name of the expand attribute and it's value are stored in a HashMap which's keys are the expand attribute name. 
 * @author <a href="mailto:ming7655@gmail.com">Aaron</a>
 */
public interface IExpAttributeHandler {
	public static String PROPERTY_COMMAND_TIMECONSUME="commandTimeConsume";
	public static String PROPERTY_TESTCASE_TIMECONSUME="testCaseTimeConsume";
	public static String PROPERTY_TESTSUITE_TIMECONSUME="testSuiteTimeConsume";
	public static String PROPERTY_PROJECT_TIMECONSUME="projectTimeConsume";
	public static String TYPE_COMMAND="COMMAND";
	public static String TYPE_TESTCASE="TESTCASE";
	public static String TYPE_TESTSUITE="TESTSUITE";
	public static String TYPE_PROJECT="PROJECT";
	/**
	 * Handler some expand attributes form given sourc object and it's attribute value.
	 * @param source Object that defines the source object which's expand attribute's value has been changed.
	 * @param value Object that defines the value of the expand attribute.
	 * @return HashMap
	 */
	public HashMap handlerExpAttributes(Object source,Object value);
}
